package JavaSE.CODE.javaCollection;


import java.util.ArrayList;
import java.util.HashSet;

public class HashSetDemo2 {
    public static void main(String[] args) {
        HashSet<Person> hashSet = new HashSet<>();
        hashSet.add(new Person("a",10));
        hashSet.add(new Person("b",10));
        hashSet.add(new Person("c",10));
        //hashcode相同，equals为true，则加不进去
        hashSet.add(new Person("c",10));

        System.out.println(hashSet.size());
        hashSet.remove(new Person("c",10));
        System.out.println(hashSet.size());
        //正是因为重写了hashcode和equals方法，使得我们可以通过字段值来删除
        //没重写的时候，除非地址一样，否则是删不掉的，因为地址不一样，
        //HashSet通过hashcode和equals方法判断是否有


        ArrayList<Person> people = new ArrayList<>();
        people.add(new Person("aa",15));
        people.add(new Person("bb",16));
        people.add(new Person("cc",17));
        people.remove(new Person("aa",15));
        System.out.println(people.size());
        //List接口的实现类没有hashcode字段，所以仅重写equals方法就可根据内容删除了
    }
}
